package com.csweimei.rentmanagementtreasure.http;


import com.csweimei.rentmanagementtreasure.http.entity.AuthBean;
import com.csweimei.rentmanagementtreasure.http.entity.AutoBean;
import com.csweimei.rentmanagementtreasure.http.entity.BaseResult;
import com.csweimei.rentmanagementtreasure.http.entity.BindEntEntity;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerCustomBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerDailyBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerFollowupBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerHousingBean;
import com.csweimei.rentmanagementtreasure.http.entity.BrokerInfoBean;
import com.csweimei.rentmanagementtreasure.http.entity.CodeListBean;
import com.csweimei.rentmanagementtreasure.http.entity.CompanyBean;
import com.csweimei.rentmanagementtreasure.http.entity.CompanyInfoHomeBean;
import com.csweimei.rentmanagementtreasure.http.entity.CountBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerCenterBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.CustomerFollowBean;
import com.csweimei.rentmanagementtreasure.http.entity.DailyListBean;
import com.csweimei.rentmanagementtreasure.http.entity.DealHouseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntDealChatBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntHomeDailyBean;
import com.csweimei.rentmanagementtreasure.http.entity.EntScheduleBean;
import com.csweimei.rentmanagementtreasure.http.entity.FollowListBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseDetailHzBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseDetailZzBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseFollowRecordBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseHistoryBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseInfoDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.HouseListEntBean;
import com.csweimei.rentmanagementtreasure.http.entity.JoinListBean;
import com.csweimei.rentmanagementtreasure.http.entity.LeaseDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.LeaseListBean;
import com.csweimei.rentmanagementtreasure.http.entity.LoginBean;
import com.csweimei.rentmanagementtreasure.http.entity.LookHouseBean;
import com.csweimei.rentmanagementtreasure.http.entity.MessageDetailBean;
import com.csweimei.rentmanagementtreasure.http.entity.MessageListBean;
import com.csweimei.rentmanagementtreasure.http.entity.NoticeMsgBean;
import com.csweimei.rentmanagementtreasure.http.entity.QuarterEntity;
import com.csweimei.rentmanagementtreasure.http.entity.SearchEntBean;
import com.csweimei.rentmanagementtreasure.http.entity.SearchStaffBean;
import com.csweimei.rentmanagementtreasure.http.entity.StaffListBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOne2Bean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOneBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabOneScheduleBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabThreeBean;
import com.csweimei.rentmanagementtreasure.http.entity.TabTwoScheduleListBean;
import com.csweimei.rentmanagementtreasure.http.entity.UserInfoEntity;
import com.csweimei.rentmanagementtreasure.http.entity.VipBean;
import com.csweimei.rentmanagementtreasure.http.entity.WXBean;
import com.csweimei.rentmanagementtreasure.http.entity.WorkScheduleListBean;
import com.csweimei.rentmanagementtreasure.utils.uploadUtils.QiNiuYunBean;

import java.util.Map;

import io.reactivex.Observable;

/**
 * Created by goldze on 2019/3/26.
 */
public interface  HttpDataSource {

    //获取个人信息
    Observable<LoginBean> qq_login(Map<String,String> map);

    //获取个人信息
    Observable<LoginBean> wechet_login(Map<String,String> map);
    //获取个人信息
    Observable<BaseResult> edituserinfo(Map<String,String> map);

    Observable<UserInfoEntity> userinfo(Map<String,String> map);

    Observable<AuthBean> seachauth(Map<String,String> map);

    Observable<BindEntEntity> isbindEnt(Map<String,String> map);

    Observable<BaseResult> logoff(Map<String,String> map);

    Observable<QuarterEntity> get_quarters(Map<String,String> map);

    Observable<BaseResult> add_quarters(Map<String,String> map);

    Observable<QiNiuYunBean> getToken();

    Observable<BaseResult> addwhole(Map<String,String> map);

    Observable<HouseInfoDetailBean> wholeinfo(Map<String,String> map);

    Observable<HouseDetailHzBean> cotenancyinfo(Map<String,String> map);


    Observable<HouseListBean> housinglist(Map<String,String> map);

    //设置房源状态
    Observable<BaseResult> housingstatic(Map<String,String> map);

    //删除房源
    Observable<BaseResult> delete_housing(Map<String,String> map);

    //编辑房源图片和详细地址
    Observable<BaseResult> edit_housing(Map<String,String> map);

    //查询房源跟进记录列表
    Observable<HouseFollowRecordBean> follow_housing(Map<String,String> map);

    //查询客户跟进记录列表
    Observable<CustomerFollowBean> followdetails(Map<String,String> map);

    //待跟进/跟进记录列表
    Observable<FollowListBean> followup(Map<String,String> map);
    //添加跟进记录
    Observable<BaseResult> addfollow(Map<String,String> map);

    //租约管理列表
    Observable<LeaseListBean> leaselist(Map<String,String> map);

    //删除合同
    Observable<BaseResult> deletelease(Map<String,String> map);

    //添加租约合同
    Observable<BaseResult> addlease(Map<String,String> map);

    //历史租约列表
    Observable<HouseHistoryBean> history_leaselist(Map<String,String> map);

    //租约信息详情
    Observable<LeaseDetailBean> lease_detail(Map<String,String> map);

    //添加或编辑客户资料
    Observable<BaseResult> addcustom(Map<String,String> map);


    //删除客户
    Observable<BaseResult> deletecustom(Map<String,String> map);



    //查询客户与客户资料列表
    Observable<CustomerBean> seachcustom(Map<String,String> map);


    //客户详情
    Observable<CustomerDetailBean> customdetails(Map<String,String> map);


    //看房意向数据列表
    Observable<LookHouseBean> showingslist(Map<String,String> map);


    //自动匹配房源
    Observable<AutoBean> mateinfo(Map<String,String> map);

    //房源/整租详情--房源详情
    Observable<HouseDetailZzBean> allhouser_data(Map<String,String> map);

    //添加房源/合租
    Observable<BaseResult> addcotenancy(Map<String,String> map);

    //待收租与将到期数据列表
    Observable<TabOneBean> beleaselist(Map<String,String> map);

    //提醒与收租文案
    Observable<NoticeMsgBean> copywriting(Map<String,String> map);

    //首页(统计跟进记录/统计信息提醒)
    Observable<TabOne2Bean> homerecords(Map<String,String> map);

    //首页(我的日程)
    Observable<TabOneScheduleBean> myschedule(Map<String,String> map);

    //添加日程
    Observable<BaseResult> addschedule(Map<String,String> map);

    //日程列表
    Observable<TabTwoScheduleListBean> schedulelist(Map<String,String> map);

    //消息中心
    Observable<TabThreeBean> message_center(Map<String,String> map);

    //消息中心
    Observable<MessageDetailBean> messageinfo(Map<String,String> map);


    //消息列表(根据消息类型返回消息列表)
    Observable<MessageListBean> messagelist(Map<String,String> map);

    //查看消息，修改消息中心-1
    Observable<BaseResult> edit_message(Map<String,String> map);

    //查询公司
    Observable<SearchEntBean> seachcompany(Map<String,String> map);

    //日报列表
    Observable<DailyListBean> dailylist(Map<String,String> map);

    //写日报
    Observable<BaseResult> adddaily(Map<String,String> map);

    //申请加入公司
    Observable<BaseResult> addbroker(Map<String,String> map);

    //日报数据详情
    Observable<BaseResult> dailydetails(Map<String,String> map);

    //退出企业
    Observable<BaseResult> exit_company(Map<String,String> map);


    //是否申请企业认证
    Observable<CompanyBean> getcompany_info(Map<String,String> map);

    //查看企业认证信息
    Observable<BaseResult> companyinfo(Map<String,String> map);


    //新增企业认证
    Observable<BaseResult> addcompanyauth(Map<String,String> map);

    //企业/首页(成交房源(统计图数据))
    Observable<EntDealChatBean> dealchat(Map<String,String> map);

    //日报记录(所有经纪人数据)
    Observable<EntHomeDailyBean> companydaily(Map<String,String> map);


    //工作日程(当前周所有经纪人数据)
    Observable<EntScheduleBean> allschedule(Map<String,String> map);

    //搜索
    Observable<BaseResult> companyseek(Map<String,String> map);

    //房源详情列表
    Observable<HouseListEntBean> allhousing(Map<String,String> map);

    //客户资料列表
    Observable<CustomerCenterBean> customcenter(Map<String,String> map);

    //成交房源列表
    Observable<DealHouseListBean> deallist(Map<String,String> map);

    //工作日程列表
    Observable<WorkScheduleListBean> workschedule(Map<String,String> map);

    //审核加入企业处理
    Observable<BaseResult> handle(Map<String,String> map);


    //申请加入企业数据列表
    Observable<JoinListBean> joincompanylist(Map<String,String> map);

    //我的/侧滑展开
    Observable<CompanyInfoHomeBean> myinfo(Map<String,String> map);


    //房源/整租详情--房源详情
    Observable<BaseResult> allhouser_data_ent(Map<String,String> map);

    //员工管理
    Observable<StaffListBean> stafflist(Map<String,String> map);

    //经纪人名片（跟进）
    Observable<BrokerFollowupBean> brokerfollowup(Map<String,String> map);

    //经纪人名片（日报）
    Observable<BrokerDailyBean> brokerdaily(Map<String,String> map);

    //经纪人名片（客户）
    Observable<BrokerCustomBean> brokercustom(Map<String,String> map);

    //名片(个人信息)
    Observable<BrokerInfoBean> brokeruser(Map<String,String> map);

    //经纪人名片（房源）
    Observable<BrokerHousingBean> brokerhousingdata(Map<String,String> map);

    //删除经纪人
    Observable<BaseResult> deletebroker(Map<String,String> map);

    //企业主动邀请经纪人
    Observable<BaseResult> invitebroker(Map<String,String> map);

    //搜索经纪人
    Observable<SearchStaffBean> seachbroker(Map<String,String> map);


    //查询个人/企业会员信息
    Observable<VipBean> seach_vip(Map<String,String> map);


    //我的兑换码列表
    Observable<CodeListBean> mycode(Map<String,String> map);

    //兑换码 兑换会员
    Observable<BaseResult> usecode(Map<String,String> map);


    //删除兑换码
    Observable<BaseResult> delete_code(Map<String,String> map);


    //赠送兑换码
    Observable<BaseResult> deliver_code(Map<String,String> map);

    //微信下单接口
    Observable<WXBean> WeChetPay(Map<String,String> map);

    //房源数据
    Observable<CountBean> housing_item(Map<String,String> map);
    


}
